﻿using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
using WalkingTec.Mvvm.Core;
using WalkingTec.Mvvm.Core.Extensions;
using HengTong.Model;
using HengTong.Model.Db;
using HengTong.Model.Db.Hr.Bill;
using TiaoTaoHelper.Wtm.Models;


namespace HengTong.ViewModel.Person.SysPersonRepairBillVms
{
    public partial class SysPersonRepairBillTemplateVm : BaseTemplateVM
    {
        [Display(Name = "单据编号")]
        public ExcelPropety BillCodeExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.BillCode);
        [Display(Name = "单据状态")]
        public ExcelPropety BillStatusExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.BillStatus);
        [Display(Name = "备注")]
        public ExcelPropety RemarkExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.Remark);
        [Display(Name = "审批人")]
        public ExcelPropety ApproverExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.Approver);
        [Display(Name = "审批时间")]
        public ExcelPropety ApprovalTimeExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ApprovalTime);
        [Display(Name = "姓名")]
        public ExcelPropety NameExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.Name);
        [Display(Name = "工号")]
        public ExcelPropety StaffNoExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.StaffNo);
        [Display(Name = "出生日期")]
        public ExcelPropety BirthDateExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.BirthDate);
        [Display(Name = "年龄")]
        public ExcelPropety AgeExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.Age);
        [Display(Name = "性别")]
        public ExcelPropety GenderExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.Gender);
        [Display(Name = "民族")]
        public ExcelPropety EthnicityExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.Ethnicity);
        [Display(Name = "最高学历")]
        public ExcelPropety HighestEducationExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.HighestEducation);
        [Display(Name = "婚姻状况")]
        public ExcelPropety MaritalStatusExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.MaritalStatus);
        [Display(Name = "身份证号")]
        public ExcelPropety IdCardNoExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.IdCardNo);
        [Display(Name = "户口所在地")]
        public ExcelPropety HouseholdRegistrationExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.HouseholdRegistration);
        [Display(Name = "籍贯")]
        public ExcelPropety NativePlaceExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.NativePlace);
        [Display(Name = "政治面貌")]
        public ExcelPropety PoliticalStatusExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.PoliticalStatus);
        [Display(Name = "入党(团)日期")]
        public ExcelPropety PartyJoinDateExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.PartyJoinDate);
        [Display(Name = "入党所在支部")]
        public ExcelPropety PartyBranchExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.PartyBranch);
        [Display(Name = "档案所在地")]
        public ExcelPropety ArchiveLocationExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ArchiveLocation);
        [Display(Name = "存档号")]
        public ExcelPropety ArchiveNoExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ArchiveNo);
        [Display(Name = "档案调出日期")]
        public ExcelPropety ArchiveTransferOutDateExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ArchiveTransferOutDate);
        [Display(Name = "档案调入日期")]
        public ExcelPropety ArchiveTransferInDateExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ArchiveTransferInDate);
        [Display(Name = "家庭住址")]
        public ExcelPropety HomeAddressExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.HomeAddress);
        [Display(Name = "手机号")]
        public ExcelPropety PhoneExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.Phone);
        [Display(Name = "邮箱")]
        public ExcelPropety EmailExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.Email);
        [Display(Name = "工资卡银行")]
        public ExcelPropety SalaryBankExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.SalaryBank);
        [Display(Name = "工资卡号")]
        public ExcelPropety SalaryAccountExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.SalaryAccount);
        [Display(Name = "奖金卡银行")]
        public ExcelPropety BonusBankExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.BonusBank);
        [Display(Name = "奖金卡号")]
        public ExcelPropety BonusAccountExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.BonusAccount);
        [Display(Name = "所属公司")]
        public ExcelPropety OrgExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.OrgId);
        [Display(Name = "所属部门")]
        public ExcelPropety GroupExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.GroupId);
        [Display(Name = "工作岗位")]
        public ExcelPropety JobPositionExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.JobPositionId);
        [Display(Name = "入职日期")]
        public ExcelPropety HireDateExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.HireDate);
        [Display(Name = "转正日期")]
        public ExcelPropety ConfirmationDateExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ConfirmationDate);
        [Display(Name = "用工形式")]
        public ExcelPropety EmploymentTypeExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.EmploymentType);
        [Display(Name = "劳动合同类型")]
        public ExcelPropety ContractTypeExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ContractType);
        [Display(Name = "合同编号")]
        public ExcelPropety ContractNoExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ContractNo);
        [Display(Name = "合同起始日")]
        public ExcelPropety ContractStartDateExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ContractStartDate);
        [Display(Name = "合同终止日")]
        public ExcelPropety ContractEndDateExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ContractEndDate);
        [Display(Name = "离职日期")]
        public ExcelPropety ResignationDateExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ResignationDate);
        [Display(Name = "离职原因")]
        public ExcelPropety ResignationReasonExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ResignationReason);
        [Display(Name = "离职类型")]
        public ExcelPropety ResignationTypeExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.ResignationType);
        [Display(Name = "人员状态")]
        public ExcelPropety StateExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.State);
        [Display(Name = "血型")]
        public ExcelPropety BloodTypeExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.BloodType);
        [Display(Name = "兴趣爱好特长")]
        public ExcelPropety HobbiesExcel = ExcelPropety.CreateProperty<SysPersonRepairBill>(x => x.Hobbies);

	    protected override void InitVM()
        {
            OrgExcel.DataType = ColumnDataType.ComboBox;
            OrgExcel.ListItems = DC.Set<SysOrg>().GetSelectListItems(Wtm, y => y.Name);
            GroupExcel.DataType = ColumnDataType.ComboBox;
            GroupExcel.ListItems = DC.Set<SysGroup>().GetSelectListItems(Wtm, y => y.GroupName);
            JobPositionExcel.DataType = ColumnDataType.ComboBox;
            JobPositionExcel.ListItems = DC.Set<SysJobPosition>().GetSelectListItems(Wtm, y => y.Name);
        }

    }

    public class SysPersonRepairBillImportVm : BaseImportVM<SysPersonRepairBillTemplateVm, SysPersonRepairBill>
    {

    }

}
